1. The Field of the Invention
The present invention is directed to methods for writing and reading streamed data and, more particularly, to methods for writing and reading streamed data in a Programmable Video Recorder (PVR).
2. Related Technology
The PVR, also known as the Digital Video Recorder (DVR), has recently entered the home entertainment market as device that is capable of providing many conveniences not previously considered practical for the traditional Video Cassette Recorder (VCR). For instance, the PVR can immediately access recorded data without having to fast-forward or rewind a videocassette in the sequential and time-consuming manner previously required by the VCR. This ability is largely a function of the type of data and the type of storage utilized by the PVR. In particular, the PVR utilizes digital data and a digital storage medium, which is capable of storing and indexing the digital data in such a manner that it can be accessed almost instantaneously.
Another convenience provided by the PVR, due to the digital medium in which it operates, is the ability of the PVR to record and play data at the same time. In particular, the PVR utilizes a writer, which writes the data to a storage medium, and a reader, which can read the data from the storage medium at substantially the same time the writer is writing data to the storage medium. It will be appreciated that the utility of being able to simultaneously record and play data at the same time is a significant advantage over the traditional VCR.
In particular, the PVR enables the viewer watching a live program to temporarily pause, rewind or replay a portion of the program without interrupting the recording of the program, such that the viewer can then later resume watching the program, including the portions of the program that were broadcast and recorded into the buffer during the temporary pause. It will be appreciated that this functionality is a result of the PVR having a writer and a reader that can perform their specific write and read functions somewhat independently. Nevertheless, as described below, the functionality of the reader is, in reality, heavily dependent upon the functionality of the writer.
Digital data, which is utilized by the PVR, is typically received in a streamed data format, which enables the data to be read and rendered while it is received, without having to first receive the entire contents of the file to which the data corresponds. There are various streaming standards and formats, which are known to those of ordinary skill in the art, including, but not limited to, MPEG (Moving Picture Experts Group), ASF (Advanced Streaming Format), AVI (Audio Video Interleave), Active Movie, Cinepaq, QuickTime, and Indeo.
Existing PVR devices are configured to operate with an appropriate streaming format, to provide the functionality described above. However, not all PVR devices are configured to operate with all streaming formats. Accordingly, for any PVR to function properly, the PVR must receive data in a format the PVR is designed to operate with. Otherwise, the writer will be unable to write the data and the reader will be unable to read the data in a manner that enables the PVR to function properly.
Although existing PVR devices are not all configured to utilize the same data formats, PVR devices are configured with a writer and a reader that are capable of operating with the same streaming format. Otherwise, the reader would be unable to read the data written by the writer, and would therefore render the PVR essentially inoperable.
Accordingly, although the writer and the reader function independently, to some degree, for enabling the PVR to record and play data at the same time, it will be appreciated that the reader is, in reality, substantially dependent on the writer. In particular, the reader can only read data once it has been written by the writer and is, therefore, dependent upon the writer writing data that the reader is capable of accessing and interpreting. For instance, if the reader is only capable of reading MPEG data, but the writer is only capable of writing ASF data then the PVR is, for all intents and purposes, inoperable. This is not a typical problem experienced by the PVR, however, since the PVR is specifically designed with the prior knowledge of how the reader will operate and the types of data the reader is capable of reading. Accordingly, the PVR is configured, at the time of manufacture, with a writer that is specifically designed to write data in the same format that can be read by the reader.
FIG. 1 illustrates one typical embodiment of an existing PVR 10 that is configured to receive streamed data from a streamed data source 20. As shown, the PVR 10 includes a tuner/decoder 30 that is configured to decompress the streamed data so that the writer 40 can write the streamed data to the storage medium of the PVR 10 into an appropriate format. The storage medium of the PVR 10 includes ring buffer 50. Ring buffers are well known by those of ordinary skill in the art.
During use, the reader 60 of the PVR 10 accesses and reads the streamed data from the ring buffer 50 and transmits the streamed data to the rendering device 70. The rendering device 70, which can include a display monitor or an audio system, ultimately renders the streamed data into the desired video and audio. Since the reader 60 and the writer 40 both directly access the ring buffer 50, it will be appreciated that for the existing PVR 10 to work, the reader 60 and the writer 40 must agree upon the data storage format used in ring buffer 50, that knowledge of this format must be built in to both the reader and the writer, and that neither of them can deviate from this format. Specifically, the writer 40 is configured to receive and write a pre-determined set of appropriate types of data to the ring buffer 50, which the reader 60 is correspondingly configured to read.
Configuring the PVR 10 with a writer 40 that will only write the appropriate type of data to the buffer 50 and in the appropriate manner is useful for ensuring that the reader 60 will be able to read the data once it has been written to the buffer 50. Nevertheless, this built in interdependency between the writer 40 and the reader 60 also significantly limits the scalability and utility of the PVR 10. In particular, limiting the type of data that can be written by the writer 40, to only the type of data formats that can be read by the reader 60, limits the utility of the PVR 10 to the functionality of that reader 60. This forecloses the utility that could otherwise be realized in recording different types of data that can be read and utilized by different types of reader applications.
Existing PVR devices are also not configured to interconnect with other reading devices and applications external to the PVR, inasmuch as it is impractical for the PVR to store data that cannot be utilized by the reader of the PVR. This, however, is an unnecessary limitation of existing PVR devices, inasmuch as this prevents external reader devices and applications for obtaining the data stored by the PVR, even when they are capable of reading and utilizing the stored data. Accordingly, the existing PVR is essentially un-scalable because it cannot be networked to external reader devices, and is, therefore, correspondingly limited to the functionality and operation of the single integrated reader incorporated within the PVR.